package com.skivingcloud.report.service;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.skivingcloud.report.entity.MesGetDynamicData;
import com.skivingcloud.report.entity.ReportTplDataset;
import com.skivingcloud.common.utils.PageParameter;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

/**
 *  服务层。
 *
 * @author skivingcloud
 * @since 2024-11-07
 */
public interface ReportTplDatasetService extends IService<ReportTplDataset> {
    /**
     * 分页查询
     *
     * @param parameter 查询参数
     * @return 分页查询结果
     */
    Page<ReportTplDataset> queryByPage(PageParameter<ReportTplDataset> parameter);

    /**
     * 根据模板主键获取数据集
     * @param id 模板主键
     * @return 数据集
     */
    List<ReportTplDataset> getTplDatasets(Serializable id);

    /**
     * 根据模板主键获取数据集
     * @param id 数据集主键
     * @return 列
     */
    List<Map<String, Object>> getDataSetColumns(Serializable id) throws SQLException, JsonProcessingException;

    /**
     * 获取动态数据
     * @param mesGetDynamicData 参数
     * @return 动态数据
     */
    List<Map<String, Object>> getDynamicDatas(MesGetDynamicData mesGetDynamicData) throws SQLException, JsonProcessingException;
}
